package org.example.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.common.ResponseResult;
import org.example.model.user.dtos.OSContainsNameDto;
import org.example.model.user.dtos.OrganizationStructureDto;
import org.example.model.user.entities.OrganizationStructure;
import org.example.model.user.vos.AddOrganizationStructureVo;
import org.example.model.user.vos.SearchOsVo;

import java.util.List;

/**
 * 组织架构服务层接口
 */
public interface OrganizationStructureService extends IService<OrganizationStructure> {

    /**
     * 添加一条组织架构信息
     */
    ResponseResult<Boolean> InsertOrganizationStructure(AddOrganizationStructureVo addOrganizationStructureVo);

    /**
     * 根据id修改一条组织架构信息
     */
    ResponseResult<Boolean> UpdateOrganizationStructureById(AddOrganizationStructureVo addOrganizationStructureVo);

    /**
     * 根据id删除一条组织架构信息
     */
    ResponseResult<Boolean> DeleteOrganizationStructureById(int id);

    /**
     * 获取组织架构树
     */
    ResponseResult<List<OrganizationStructureDto>> SelectOrganizationStructureList();

    /**
     * 根据id获取组织架构名称
     */
    String SelectStructureNameById(int id);

    /**
     * 根据组织架构类型获取组织架构列表
     */
    ResponseResult<List<OSContainsNameDto>> SelectOrganizationStructureListByType (SearchOsVo searchOsVo);
}
